package cn.iocoder.yudao.module.system.controller.admin.examclass.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 班级信息 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ExamClassBaseVO {

    @Schema(description = "班级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "高三(1)班")
    @NotBlank(message = "班级名称不能为空")
    @Size(max = 100, message = "班级名称长度不能超过100个字符")
    private String className;

    @Schema(description = "班级编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "G3C1")
    @NotBlank(message = "班级编码不能为空")
    @Size(max = 50, message = "班级编码长度不能超过50个字符")
    private String classCode;

    @Schema(description = "年级", requiredMode = Schema.RequiredMode.REQUIRED, example = "高三")
    @NotBlank(message = "年级不能为空")
    @Size(max = 20, message = "年级长度不能超过20个字符")
    private String grade;

    @Schema(description = "班主任ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "班主任ID不能为空")
    private Long teacherId;

    @Schema(description = "班级描述", example = "理科重点班")
    @Size(max = 500, message = "班级描述长度不能超过500个字符")
    private String description;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "状态不能为空")
    private Integer status;

}